#pragma once

namespace Renderer
{
	class ColorMask
	{
	public:
		ColorMask() :ColorMask(true,true,true,true)
		{

		}
		ColorMask(bool red, bool green, bool blue, bool alpha)
		{
			_red = red;
			_green = green;
			_blue = blue;
			_alpha = alpha;
		}
		~ColorMask(){}

		bool GetRed() const { return _red; }
		bool GetGreen()const{ return _green; }
		bool GetBlue()const { return _blue; }
		bool GetAlpha()const { return _alpha; }


		bool operator==(const ColorMask& right)
		{
			if (_red == right.GetRed() &&
				_green == right.GetGreen() &&
				_blue == right.GetBlue() &&
				_alpha == right.GetAlpha())
			{
				return true;
			}

			return false;
		}

		bool operator!=(const ColorMask& right)
		{
			if (_red == right.GetRed() &&
				_green == right.GetGreen() &&
				_blue == right.GetBlue() &&
				_alpha == right.GetAlpha())
			{
				return false;
			}

			return true;
		}

	private:
		bool _red, _green, _blue, _alpha;
	};
}